package xu.jiang.report.dealer.report;

import xu.jiang.report.Param;
import xu.jiang.report.dealer.ISQLRunner;

/**
 * 报表处理总入口
 * 
 * @see
 * @author jx
 * @date 2024-10-27
 */
public abstract class MyReportDealer extends AbstractReportDealer implements ISQLRunner {


	public MyReportDealer(Param param) {

		super(param);
	}

	@Override
	public ISQLRunner getSqlRunner() {
		return (sql,selectColumNames)-> this.createSQLQuery(sql,selectColumNames);
	}


//	private static class EmptySQLRunner implements ISQLRunner {
//
//		@Override
//		public List<Object[]> createSQLQuery(String sql) {
//			return new ArrayList<>(0);
//		}
//	}
	/**
	 * 這是  Hibernate 的方式
	 */
//	private static class HibernateSQLRunner implements ISQLRunner {
//
//		private final Session session ;
//
//		public HibernateSQLRunner(Session session) {
//			this.session = session;
//		}
//
//		@Override
//		public List<Object[]> createSQLQuery(String sql) {
//
//			return this.session.createSQLQuery(sql).list();
//		}
//	}
}
